package com.xbongbong.paas.pojo.vo;

import com.alibaba.fastjson.JSONObject;
import com.xbongbong.paas.domain.entity.ext.FieldPermissionEntityExt;
import com.xbongbong.paas.toolbox.wrap.BaseVO;
import com.xbongbong.paas.toolbox.wrap.UserVO;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

import java.util.List;

/**
 * @author: wufeng
 * @date: 2018/11/21 10:35
 * @desrcption: 节点任务返回对象封装
 */
@Getter
@Setter
@ToString
public class PaasProcessNodeTaskVO extends BaseVO {
    private static final long serialVersionUID = 1152488415151962812L;

    /**
     * 主键
     */
    private Long id;
    /**
     * 公司id
     */
    private String corpid;
    /**
     * 应用id
     */
    private Long appId;
    /**
     * 菜单id
     */
    private Long menuId;
    /**
     * 表单id
     */
    private Long formId;
    /**
     * 表单记录id
     */
    private Long formDataId;
    /**
     * 流程任务id
     */
    private Long taskId;
    /**
     * 操作人user_id
     */
    private String userId;

    /**
     * 操作人用户
     */
    private UserVO operatorUser;
    /**
     * 节点任务类型， （0：未处理：1：提交；2：提交并打印；3：暂存:4：转交:5：回退:6：激活流程:7：结束流程；）
     */
    private Integer taskType;

    /**
     * 会签/或签，1或签(任意负责人提交后进入下一节点), 2会签(所有负责人提交后进入下一节点)
     */
    private Integer signType;

    /**
     * 前端所需颜色
     */
    private String color;

    /**
     * 撤回用户的id
     */
    private String revokeUserId;
    /**
     * 撤回用户
     */
    private UserVO revokeUser;
    /**
     * 节点类型 (1: 开始节点，2.结束节点，3：流程节点，4：抄送节点)
     */
    private Integer nodeType;
    /**
     * 模板节点id
     */
    private Long templateNodeId;
    /**
     * 审批意见
     */
    private String opinion;
    /**
     * 审批意见是否必填
     */
    private Integer opinionFlag;
    /**
     * 转交负责人
     */
    private String transferUserId;
    /**
     * 转交负责人名称
     */
    private UserVO transferUser;
    /**
     * 回退节点id
     */
    private Long backspaceNode;
    /**
     * 回退原因
     */
    private String backspaceReason;
    /**
     * 激活到哪个节点
     */
    private Long activationNode;
    /**
     * 创建者id
     */
    private String creatorId;

    /**
     * 创建人用户名称
     */
    private UserVO creatorUser;

    /**
     * 创建时间时间戳
     */
    private Long addTime;
    /**
     * 更新时间时间戳
     */
    private Long updateTime;
    /**
     * 删除标记
     */
    private Integer del;

    /**
     * 任务状态描述字段
     */
    private String taskTypeMemo;

    /**
     * saas标记
     */
    private Integer saasMark;

    /**
     * saas业务类型
     */
    private Integer businessType;
    /**
     * 类型 提交给我的，我提交的，全部，抄送给我的
     */
    private String processType;

    private Integer isRead;

    private List<FieldPermissionEntityExt> summary;

    /**
     * 报价单新版本名称判重时，前端需要从名称字段解释里取后端需要的参数
     * 格式为{"newVersion": 1,"groupNumber": ""}
     */
    private JSONObject quotationNameRepeat;

    /**
     * 表单的单位列宽
     */
    private String fieldPosition;

}
